package cn.bonoon.kernel.io;

/**
 * 我们自己定义的文件系统
 * @author jackson
 *
 */
public interface BFile {
	
	/** 允许的最长后缀名的长度，如果超过这个长度，则认为这个不是后缀名 */
	int MAX_FILESUFFIX_LENGTH = 10;
	
	/** 文件存储的相对路径，如果文件存储在本地，则这个相对路径可以转成绝对路径后可以
	 * 访问得到文件，但这个路径不一定是数据库存储的路径 */
	String getFilepath();
	
	/** 取得文件名，不包括路径，只有文件名字部分，包括后缀 */
	String getFilename();
	
	/** 文件的后缀名 */
	String getFilesuffix();
	
	/**
	 * 这个位置是最重大的更新，这里可以指定存储的catalog；而且相对路径的生成也与之前的不一致，
	 * 如果指定了catalog，则会在路径的前面使用"[catalog]:"的前缀
	 * 
	 * 但这又与文件系统的盘符冲突，如：访问C盘"c://folder/filename.txt"
	 * 
	 * 在系统存储的都是相对路径，所以与绝对路径的盘符可以同时存在
	 */
	String getCatalog();
	
	/** 指定文件所存储的目录，如："f1/f2/f3/file.txt"，这里则是取得"f1/f2/f3"这个目录
	 * 比较有用的地方是需要从远程服务器把文件先下载到本地的临时目录，再读文件的情况，就需要使用到
	 * 具体的文件所在的目录 */
	String getFolder();
	
//	/** 取得参数 */
//	String getParamenter(String name);
}
